home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u586.dms / u586.adf / shortdox < prev    next >
Text File  |  1978-01-09  |  56KB  |  1,140 lines

  1. ***********************************************************************
  2. **************                                          ***************
  3. ************** This file refers to CoComm Revision 4.14 ***************
  4. **************                                          ***************
  5. ***********************************************************************
  6.  
  7. Please note that speech, highlighting, and many other features are only
  8. designed to operate when you are in AI CO Mode. When not in co, they
  9. are disabled.
  10.  
  11. YOU NEED A LOT OF STACK FOR COCOMM - 20K MINIMUM!!!! OR GURU!!!!!
  12.  
  13. You should NOT try to initiate Ai Co mode unless you are in Co on CIS.
  14. If you do, CoComm will "hang" until you press a ^C character, at which
  15. time it will abort the Ai Co request.
  16.  
  17. Ai Co mode precedes EVERY line with ^U, ^H, ^H, ^H, ^H - if you try and
  18. run Ai Co mode anywhere BUT in CIS co areas, you'll confuse the HECk out
  19. of whatever host you are trying to communicate with!
  20.  
  21. IMPORTANT: For CIS communications, use 8 bits, 1 stop bit, no parity.
  22.  
  23. Memory requirements:
  24.   CoComm needs about 316k if the Narrator and Translator libraries
  25.   are NOT available; If it loads them, it needs about 353k to run.
  26.  
  27. See list at the end of this file for change information for this version
  28.  
  29. ***********************************************************************
  30.  
  31.                                !!! NOTE !!!
  32.  
  33. Many people experience difficulty using CoComm's function keys, due to
  34. the program's using many of the non-alphanumeric keys as meta keys.
  35.  
  36. For SIMPLE use of the function keys, follow these rules:
  37.  
  38. Use the '^' character to create a control character: IE:  ^C
  39. Use the '|' character to send a newline;
  40. Enclose normal text within two " quote characters.
  41.  
  42. ^X"TextToSend"|
  43.  
  44. Hope this helps end some of the confusion!    CBB Feb/14/88
  45.  
  46. ***********************************************************************
  47. ***********************************************************************
  48.  
  49.          There is a formal manual for CoComm; it is currently
  50.          over 30 pages in length, and addresses every feature
  51.          in CoComm. It is constantly being updated, just like
  52.          the program itself, and is well worth $15.00 - which
  53.          is the shareware contribution asked for CoComm, when
  54.          and if you decide you want to use it. Please, if you
  55.          can, do make the shareware payment; If we see that a
  56.          shareware project can be made to work, we will enter
  57.          into more of these efforts - some that would be made
  58.          as commercial products otherwise. Shareware is a new
  59.          direction for SoftCircuits, and if it works out, you
  60.          will gain by it. CBB, for SoftCircuits, January 1988
  61.          
  62. ***********************************************************************
  63. ***********************************************************************
  64.  
  65.    Beginning with 4.00, CoComm is compiled with Lattice 4.0 C.
  66.    This compiler is a SIGNIFICANT departure from the 3.1 version
  67.    that was previously used to generate CoComm; please report any
  68.    problems with CoComm's operation immediately To Ben Blish on
  69.    CIS AmigaForum. Thank you.
  70.  
  71. ***********************************************************************
  72. ***********************************************************************
  73.  
  74. To setup CoComm, do the following.
  75.  
  76. FIRST:
  77.   {
  78.     exec exec.me
  79.   }
  80.  
  81. NEXT:
  82.   {              
  83.     Put coco in a workbench drawer that you wish to run it from.
  84.     'cd' to that drawer (directory)
  85.     makedir ConfigLib
  86.     makedir CaptureLib
  87.     copy all .def files to ConfigLib
  88.     copy all .Config files to ConfigLib
  89.     doubleclick on the coco icon;
  90.     after startup, point mouse at Phone Book gadget and click on it
  91.     after Phone Book opens, select Projects/Keydefs from menus
  92.     change the phone#, userid#, and password to YOURS, leave quotes!
  93.     close keydefs window w/close gadget
  94.     select Projects/Configure/File Cnf
  95.     click on the '>' gadget next to the 'Phone" entry in file list
  96.     click on SAVE gadget. CoComm should now be able to call CIS.
  97.   }
  98.  
  99. You can also 'run' cocomm from the CLI; however, using this set
  100. of example functions, you MUST have the directories created as
  101. specified above, and you MUST 'cd' to the directory that CoComm is
  102. in before executing the "run CoCo" that starts the show.
  103.  
  104. You can change the macro keys to make CoComm run using all of it's
  105. data files from s:, or anywhere else - however be advised that if
  106. CoComm cannot find the configlib dir or drawer, it looks in s: for
  107. it's "default.config" file - so at least that will HAVE to be in
  108. s:  Once started, the default file itself will point cocomm to the
  109. correct place where the configs are to be found.
  110.  
  111. ***********************************************************************
  112.  
  113. Some things you might like to know:
  114.  
  115. When you download a new Version of CoComm, it's handy to use the
  116. def.config file supplied in the ARC to build your own default.config
  117. file again; This prevents any differences in .config file type from
  118. causing you any confusion. If you wish to use your previous file, then
  119. make SURE you check ALL of the prefs entries, and ALL of the locator
  120. entries to be sure they're ok. If they are not, things can get.... well,
  121. funny.
  122.  
  123. The best proceedure to follow is to move the new CoComm where you want
  124. it to reside - probably where the last one was. Then start it, either
  125. using run, or by clicking on it's icon... It will find your old
  126. default.config file, and use it to set itself up. Chech the preferences
  127. window - make sure that all the new items (assuming there are any) are
  128. set as you prefer them to be, then close the prefs window and save a
  129. new default.config file.
  130.  
  131. CoComm is uploaded with itself. Make of that what you will. <grin>
  132.  
  133. You can close the following windows by pressing the ESC key, if you are
  134. NOT entering text into a string gadget at the time, and the window is
  135. active (selected):
  136.  
  137. The /sen manager window;
  138. The Locator window;
  139. The Review Buffer window;
  140.    In this window, the up-cursor and down-cursor keys will scroll
  141.    the contents just like the arrow gadgets
  142. The Macro Keys window;
  143.    Be careful - if you have a cursor in a text gadget, and you
  144.    press the ESC key, then the ESC character will be entered into
  145.    that text gadget instead of closing the window!
  146. The Prefs window;
  147.  
  148. The configure files save the following information:
  149.  
  150.   The main windows size     (only used on startup)
  151.   The main windows position (also only used at startup)
  152.   The Chat windows size     (also)
  153.   The Chat windows position (startup only)
  154.   chat status - on or off.
  155.   all of the names and ppn's in the locator window
  156.   The baud rate  (Only used at startup)
  157.   parity         (Only used at startup)
  158.   word length    (Only used at startup)
  159.   stop bits      (Only used at startup)
  160.   the palette colors used when cocomm is operating
  161.   Highlight pen choices for:
  162.                sen's
  163.                system msgs
  164.                normal co message name
  165.                normal co message contents
  166.                brackets around co message name
  167.   Preferences; Your name
  168.                Review buffer controls
  169.                Chat window status (on or off)
  170.                the path to look for capture files
  171.                the path to look for config files
  172.                the extension to look for on capture files
  173.                the character position where the auto word-wrap activates
  174.                your word-wrap trailer string
  175.                your hard c/r trailer string
  176.                Custom screen option
  177.                Interlaced custom screen option
  178.                underline, boldface, and italics settings
  179.                
  180.  
  181. If the program cannot find it's startup file, it will setup some
  182. simple defaults. The first thing you should do is change all the
  183. settings to ones you approve of, and then save a file called
  184. "default.config" either in the ConfigLib subdirectory or in your
  185. s: assign. Cocomm initially looks in a directory called ConfigLib,
  186. if it can find it. Then it looks in the system assign 's:', so if
  187. you have default.config files in both places, it will use the one
  188. in ConfigLib, rather than the one in s:.
  189.  
  190. Function keys are not buffered - this means that you can set them
  191. up with things like    *"o/u co"|   for a status report, and press the key
  192. even though you're in the middle of a line in the chat window... it
  193. won't disturb you, and the status report will come up in the log window.
  194.  
  195. In the config file supplied with this ARC, you will find comments in each
  196. of the function keys. To read them, open the function key window using
  197. either Right/Amiga/K or the menu entry, click in each key text area in
  198. turn, and scroll the text using the left and right cursor keys. Then study
  199. this section to learn how each key is programmed.
  200.  
  201. In a function key definition, you can use the following special
  202. characters:
  203.  
  204.          ^char - generate a control character out serial port
  205.              | - generate a c/r out serial port
  206.              ` - rest of function key is ignored
  207.              ~ - wait for about 1 second
  208.       >nn"xxx" - start key 'nn' after 'xxx' tenths of a second
  209.              < - abort '>' key timer
  210.   ("AnnSTRING" - watch for STRING, use register 'A', if found start key 'nn'
  211.            )nn - stop watching with register 'nn'
  212.    @"filespec" - open capture on file 'filespec'
  213.            @"" - close capture
  214.    *"yxSTRING" - send STRING to 'x' (s)peech, (w)indow, (o)utserial, (p)rint
  215. \nn"path/file" - load new config as 'path/file'.CONFIG start key 'nn'
  216.    ["filespec" - initialize user gadget window using 'filespec'
  217.              { - open user gadget window
  218.              } - close user gadget window
  219.    ]"DWPSBBBb" - set (D)uplex, (W)ordlength, (P)arity, (S)topbits, (B)audrate
  220.             =A - Ai Co Mode On
  221.             =B - Buffered Chat window On
  222.             =C - Close Chat window
  223.             =D - Disable Ai Co Mode
  224.             =F - Flash screen
  225.             =Q - Quit CoComm
  226.             =R - Review Buffer to Front
  227.             =S - Workbench Screen to Front
  228.             =U - Update /sen list
  229.             =W - CoComm Windows to Front (activated)
  230. ?"commandline" - Execute DOS command (with I/o to/from nil:)
  231.     +"xxx"yyy" - BEEP at tone 'xxx' for time 'yyy'
  232.    &"filespec" - send file 'filespec' (halt w/ ^C)
  233.             $x - emit next char as normal char instead of execute function
  234.            :r+ - increment numeric control register 'r'
  235.            :r- - decrement numeric control register 'r'
  236.            :r0 - clear numeric control register 'r'
  237.           :rLn - (L)oad register 'r' with value 'n'
  238.            #nn - jump to key 'nn'
  239.          #:xnn - jump to key 'nn' if numeric register 'x' EQUAL 0
  240.          #;xnn - jump to key 'nn' if numeric register 'x' NOT EQUAL 0
  241.          #>xnn - jump to key 'nn' if numeric register 'x' GREATER THAN 0
  242.          #<xnn - jump to key 'nn' if numeric register 'x' LESS THAN 0
  243.            !nn - call key 'nn' (then return into current key)
  244.          !:xnn - call key 'nn' if numeric register 'x' EQUAL 0
  245.          !;xnn - call key 'nn' if numeric register 'x' NOT EQUAL 0
  246.          !>xnn - call key 'nn' if numeric register 'x' GREATER THAN 0
  247.          !<xnn - call key 'nn' if numeric register 'x' LESS THAN 0
  248.   ;nn"1"2"P"N" - requester: key(nn), line(1), line(2), (P)ostext, (N)egtext
  249. %"xSTRING"ttt" - wait time 'ttt' for STRING, match=continue, else do 'x'
  250.       "STRING" - sends quoted string to serial output.
  251.       
  252.       
  253.       
  254.       
  255.       
  256.       
  257.                **** DETAILED INFO ON MACRO FUNCTIONS: ****
  258.                
  259. "STRING" - send the string in quotes to the serial output channel. You can
  260.            send any normal text character within the quotes EXCEPT
  261.            a quotation mark itself. If you MUST send a quotation mark,
  262.            for instance lets say you have to send the following string:
  263.            
  264.                  This is a "test" string
  265.                  
  266.            You will have to use the '$' escape character to do it, like
  267.            this:
  268.            
  269.                  "This is a "$""test"$"" string"
  270.                  
  271.            notice that the escape character must occur OUTSIDE of the
  272.            quotes enclosing the normal text; there were FIVE elements
  273.            to that macro item;
  274.               
  275.            1     "This is a "
  276.            2               $"
  277.            3                "test"
  278.            4                    $"
  279.            5                     " string"
  280.  
  281.    "^" - this means the next char is a control char. IE: ^H for a backspace.
  282.    
  283.    "|" - this is a newline... just like hitting return.
  284.    
  285.    "`" - this means EVERYTHING after this char is ignored; a comment.
  286.    
  287.    "~" - this causes a short delay.
  288.    
  289.    ">" - This starts the function key timer. You can start any funtion
  290.          key with the timer; Syntax is: >nn"x" where nn is the function
  291.          key number and x is the time, which is a positive number which
  292.          may be 1 through 99999 - each unit is 1/10th of a second. If you
  293.          wish to disable the timer, use the "<" function, described next.
  294.          When the timer times out (If it does) the function key specified
  295.          will be started. This timer has a range of over 27 hours.
  296.    
  297.    "<" - This stops the function key timer; it will not time out, and the
  298.          function key specified in the ">" statement will NOT be executed.
  299.    
  300.    "(" - this "SETs" a watch string. Syntax is:
  301.                       ("AnnSTRING"
  302.          A      = 1 character, A-Z, upper or lowercase: a match register.
  303.          nn     = 2 digits, 01-20:                      a macro key number.
  304.          STRING = ASCII:                                a text string.
  305.          
  306.          Once set, until you execute an UNSET (see next item) for
  307.          this watch string, EVERY time this string is encountered,
  308.          except during file transfers, the specified function key
  309.          will be invoked. There are 26 watch strings, 1 for each
  310.          letter of the alphabet.
  311.          
  312.          IMPORTANT NOTE:   match registers A-M are CASE SENSITIVE!
  313.                            match registers N-Z are NOT!
  314.          
  315.          So;  ("A10testING"  Will ONLY match this string:  testING
  316.          
  317.          But: ("N10testING"  Will match any of these:      testing, TESTING,
  318.                                                            TESTing, testING,
  319.                                                            tEsTiNg, TeStInG.
  320.          Either one would start key F10 executing upon a match.
  321.          
  322.    ")" - this UNSETs a watch string. Syntax is:    )A
  323.          where A is 1 character, A-Z, upper or lower case.
  324.          
  325.          Once unset, this watch will no longer be functional until
  326.          another SET operation occurs for it.
  327.    
  328.    "@" - this turns the capture buffer on and off. It is followed by
  329.          a quoted string; ie:  @"df0:capfile"  this would begin to
  330.          capture to the file df0:capfile. To turn capture off, use
  331.          this syntax:   @""   that will close the capture file.
  332.          
  333.    "*" - This sends a string to the narrator, the printer, or the
  334.          screen. The string can be either plain ASCII text followed
  335.          by a quote, or it can be a 'handle' as recieved by the
  336.          program on a recent line. Syntax is as follows:
  337.          
  338.             *"yxSTRING"  where 'x' can be one of the four
  339.             following options, upper or lower case:
  340.    
  341.             S - Speech;  Text sent to the narrator.
  342.             W - Window;  Text sent to the window.
  343.             P - Printer; Text sent to the narrator.
  344.             O - Output;  Text goes to CIS, out serial channel.
  345.             
  346.             and where 'y' is an OPTIONAL field that can be one
  347.             of three things;
  348.             
  349.                 if an '+', then the text is taken from
  350.                 the LAST input line from a CO level line.
  351.             
  352.                 If an '-', the text is taken from the LAST
  353.                 input line from a /sen level line.
  354.             
  355.                 if an ':x', the 'x' is a parameter a-z or A-Z,
  356.                 a numeric register - the text will be "43" if
  357.                 the value in the register is 43.
  358.             
  359.             If you use the y option, then the STRING portion
  360.             is omitted, as the string data will come from internal
  361.             registers.
  362.    
  363.    "\" - This loads a new .config; you can use it to run sequences
  364.          of function keys limited only by disk space. Syntax:
  365.          
  366.          \NN"filename"  (.config is added automagically)
  367.          
  368.          Where NN is the function key to be started after the load
  369.          completes. If you use 01-20, then the specified function
  370.          key will be started immediately after the new config is
  371.          loaded; if you use '00' there, then the config is loaded,
  372.          but no key is started. Any other value will cause an
  373.          error condition.
  374.    
  375.    "[" - This initializes the User-definable gadget window.
  376.          it has one parameter, a file name; use it like this:
  377.          
  378.                        ["path/filename.extension"
  379.          
  380.          This will cause CoComm to attempt to read a control file
  381.          that contains ascii text in a certain format, and if it
  382.          is successful, a window will be initialized (not opened,
  383.          though) with the gadgets specified in the control file.
  384.          You may then use the '{' and '}' functions to open and
  385.          close the window, respectivly. Here is the format of the
  386.          file, as demonstrated by an example:
  387.          
  388.             Gadget Window Title   - window title
  389.             03                    - number 01-20 (how many gadgets)
  390.             05FKEY #5             - key number 01-20, 21-40, or 41-60
  391.             09FKEY #9             - key number 01-20, 21-40, or 41-60
  392.             20FKEY #20            - key number 01-20, 21-40, or 41-60
  393.             
  394.          You may have only as many gadget def lines as the number you
  395.          specify under the window title line; Gadget text names are
  396.          limited to ten characters; All numeric parameters MUST be
  397.          two digits; And you MUST have as many gadget definitions as
  398.          you specify on line 2, or the initialization will fail.
  399.          
  400.          Using the range 1-20 to specify the fkey to execute will
  401.          cause the text in the gadget to be color #1; Using 21-40
  402.          will cause it to be color 2; and using 41-60 will cause it
  403.          to be color 3. Put a little differently, pick an fkey 1-20.
  404.          then, for color 2, add 20. Or, for color 3, add 40.
  405.    
  406.    "{"   Opens the window initialized by the '[' function, described
  407.          previously.
  408.          
  409.    "}"   Closes the window initialized by the '[' funtion, described
  410.          previously
  411.    
  412.    "]" - This allows you to set up the communications parameters
  413.          from the macro language. Syntax is as follows:
  414.            
  415.             ]"DWPSBBBb"
  416.          
  417.          where (D)uplex   may be (F)ull or (H)alf
  418.                (W)ord     may be (8)    or (7)
  419.                (P)arity   may be (O)dd, or (E)ven, or (N)one
  420.                (S)topbits may be (1)    or (2)
  421.                (BBBb) is a baudrate specification, all of the
  422.                       following are legal:
  423.                          000 0000 0300 300 1200 2400 9600
  424.                       the zero value is a special value -
  425.                       it means "Don't change the baudrate"
  426.          
  427.          examples:
  428.             ]"F8N11200"    ]"H7E1300"  ]"H7E10300"  ]"f7n2000"
  429.    
  430.    "=" - This initiates CoComm functions. You place a single
  431.          character after the "=" character, and it performs a
  432.          function. These characters may be upper or lower case.
  433.          
  434.            =A    "Ai Co Mode On"
  435.            =B    "Buffered Chat window On"
  436.            =C    "Close Chat window"
  437.            =D    "Disable Ai Co Mode"
  438.            =F    "Flash screen"
  439.            =Q    "Quit CoComm"
  440.            =R    "Review Buffer to Front"
  441.            =S    "Workbench Screen to Front"
  442.            =U    "Update /sen list"
  443.            =W    "CoComm Windows to Front (activated)"
  444.                   NOTE: if the Chat Window is open, then it
  445.                   is the window that gets activated; If not,
  446.                   then the main log window is activated.
  447.    
  448.    "+" - This controls a 'beep' feature. It has two three-digit
  449.          numeric parameters; Use it like this: +"xxx"yyy"
  450.          The 'xxx' parameter is the duration of the note; the
  451.          larger, the longer it lasts. The 'yyy' is the period, or
  452.          tone of the note; the larger, the lower the tone.
  453.          
  454.    "&" - this controls the send file feature. It is followed by a
  455.          quoted string; ie: &"df0:sendfile"  This would send the
  456.          complete file to the serial output. Filename required.
  457.          Operation can be halted by a control C.
  458.          
  459.    "$" - this, when placed before another of the special characters,
  460.          causes that character to be emitted normally; IE,
  461.          putting $| in a macro will send the "|" char, not a new line.
  462.    
  463.    "?" - Followed by a quoted string, this implements a DOS execute
  464.          facility. Use like this:
  465.          
  466.                ?"NewCLI"
  467.          
  468.          All I/o is to/from the 'nil:' device, so if you need text
  469.          output, you'll have to make a newcli and go from there.
  470.          The return code from the command is placed in numeric register
  471.          'Z', and so can be tested for zero or non-zero results.
  472.    
  473.    ":" - this is a numeric register control command; you follow it with
  474.          a register A-Z (not case sensitive) and then one of four
  475.          items; '+', '-', 'L"number"' or '0'. The + increments
  476.          the register, the - decrements it, the L"number" loads it with
  477.          the number, and the 0 clears it. So, you could say:   :p0 
  478.          and that would clear register P. You could say, :T+ and that
  479.          would increment register T. You could say, :uL"45" and that
  480.          would load register U with the value 45. values can be up to
  481.          six digits in length, 1 digit minimum. You use these in
  482.          conjunction with the "#" jump and "!" call operations,
  483.          described next.
  484.          
  485.          Numeric register 'Z' is used by the ?"" execute statement;
  486.          the return code from the executed command is placed in the
  487.          'Z' register so you can test it and control the macro execution
  488.          based on the results.
  489.          
  490.    "#" - this means that the next two chars choose another macro key;
  491.          ie; #03 will start key F3 executing.... use 01-20. This is
  492.          a "jump" operation; meaning that once this has occurred,
  493.          the key with the #nn instruction will NOT resume operation.
  494.          
  495.          Optional conditional jump uses another set of syntax;
  496.          if the '#' character is followed by one of the following four
  497.          characters:   :,  ;,   <,  or  >   and then a letter a-z or A-Z,
  498.          then the jump will only occur if that numeric register is ZERO,
  499.          NONZERO, LESS THAN ZERO, or GREATER THAN ZERO. Used like
  500.          this:  #:q03   This statement says that IF numeric register Q
  501.          contains zero, THEN we jump to key number 3. Otherwise, execution
  502.          continues in this key. If you say, #;t04  this means:
  503.          IF numeric register T is nonzero THEN we jump to key number 4.
  504.          if you were to say #>b05    then key 5 would be executed IF
  505.          register b was greater than zero... if it was zero or less than
  506.          zero, execution continues in the current key. If you were to say
  507.          #<x11 then key 11 would be executed IF register x was less than
  508.          zero; if it was zero or greater than zero, execution continues in
  509.          the current key.
  510.          
  511.    "!" - this means that the next two chars choose another macro key;
  512.          ie; !03 will start key F3 executing.... use 01-20. This is
  513.          a "call" operation; meaning that once this has occurred,
  514.          the key with the !nn instruction will resume operation as long
  515.          as the key that was called does not cause an abort for some
  516.          reason. There is no corresponding return statement, except
  517.          in a (%)compare... called keys return when they complete, IF
  518.          they complete, or when a (%)compare fails that has a "B"
  519.          specification in the fail field.
  520.          
  521.          Optional conditional call uses another set of syntax;
  522.          if the '!' character is followed by one of the following four
  523.          characters:   :,  ;,   <,  or  >   and then a letter a-z or A-Z,
  524.          then the call will only occur if that numeric register is ZERO,
  525.          NONZERO, LESS THAN ZERO, or GREATER THAN ZERO. Used like
  526.          this:  !:q03   This statement says that IF numeric register Q
  527.          contains zero, THEN we call key number 3. Otherwise, execution
  528.          continues in this key. If you say, !;t04  this means:
  529.          IF numeric register T is nonzero THEN we call key number 4.
  530.          if you were to say !>b05    then key 5 would be called IF
  531.          register b was greater than zero... if it was zero or less than
  532.          zero, execution continues in the current key. If you were to say
  533.          !<x11 then key 11 would be called IF register x was less than
  534.          zero; if it was zero or greater than zero, execution continues in
  535.          the current key.
  536.          
  537.    ";" - This invokes a standard intuition style requester. You supply
  538.          a function key number that may be executed in some cases, and
  539.          four text strings. If the user presses the left button
  540.          (Which matches string #3) then the function key continues
  541.          execution; if the user presses the right button on the
  542.          requester, then the function key named in the function is
  543.          started up.  Syntax is as follows:
  544.          
  545.            ;NN"1st line"2nd Line"Positive Text"Negative Text"
  546.          
  547.          The first parameter (NN) is a function key number. If the
  548.          user presses the right button in the requester, then this
  549.          function key is jumped to and execution begins in it.
  550.          
  551.          You MUST supply all four text strings, especially the text
  552.          for the positive button and the negative button. Example:
  553.          
  554.            ;"No Mail - proceed to"next operation or quit"-Proceed-"-Quit-"
  555.          
  556.          The first two strings are limited to 80 characters; the positive
  557.          text and the negative text are each limited to 20 characters.
  558.          
  559.    "%" - this is a combination string match/timing controller;
  560.          it compares a string against incoming data; if the string
  561.          matches within the specified time, then execution continues
  562.          in the same key at the next item. If it fails, then the
  563.          operation specified in the "fail field" is performed.
  564.          
  565.          syntax is as follows:   %"xSTRING"VALUE"
  566.          where:   
  567.                   "x" is required: it is the "fail field", and can be:
  568.                    (upper or lower case) any of the following items.
  569.                    The fail field tells the compare what to do if the
  570.                    compare fails.
  571.                           R   - which will Restart the key if it times out
  572.                           S   - which will Stop the key if it times out
  573.                           C   - which will Continue the key if it times out.
  574.                           Knn - where nn is a macro key number to be
  575.                                 executed if this times out. (Jump)
  576.                                 See the "#" cmd for details on jumps.
  577.                           Pnn - where nn is a macro key number to be
  578.                                 executed if this times out. (Call)
  579.                                 See the "!" cmd for details on calls.
  580.                           B   - go back to calling key... if key was
  581.                                 called, and this compare fails, then
  582.                                 control returns to calling key. If the
  583.                                 key was NOT called, then execution
  584.                                 terminates as with the "S" option.
  585.                    
  586.                    STRING is an optional text string, which, if matched
  587.                           within the time specified by the VALUE field,
  588.                           will cause the key operation to continue.
  589.                           
  590.                    VALUE  is an optional positive number, representing
  591.                           representing 10ths of a second, that is used
  592.                           to limit the amout of time that the STRING is
  593.                           checked for a match.
  594.                    
  595.                    The quotation marks are absolutely required!
  596.                    
  597.                    The operation of the "%" command can be aborted during
  598.                    a wait by pressing the CTRL and C keys together. A
  599.                    requester is presented, and you can select ABORT or
  600.                    CONTINUE. ABORT will stop the key from doing anything
  601.                    else. CONTINUE will do the _next_ operation in the
  602.                    function key - not continue the wait you interupted.
  603.                    
  604.          Here are some examples of the "%" command's use:
  605.          
  606.              %"sCONNECT 1200"200"    --  waits for 20 seconds, checking
  607.                                          for the occurance of the string
  608.                                          "CONNECT 1200". If not found in
  609.                                          20 seconds, the key stops running.
  610.  
  611.              %"cCONNECT 1200"200"    --  waits for 20 seconds, checking
  612.                                          for the occurance of the string
  613.                                          "CONNECT 1200". If not found in
  614.                                          20 seconds, the key continues
  615.                                          running.
  616.                                          
  617.              %"rCONNECT 1200"200"    --  waits for 20 seconds, checking
  618.                                          for the occurance of the string
  619.                                          "CONNECT 1200". If not found in
  620.                                          20 seconds, the key starts all
  621.                                          over again. See the example below
  622.                                          for a practical reason to do this.
  623.                                          
  624.              %"c""                   --  Doesn't do anything, just
  625.                                          continues.
  626.                                          
  627.              %"K04test"100"          --  Starts macro key F4 if the string
  628.                                          "test" is not received within 10
  629.                                          seconds of starting the "%" cmd.
  630.                                          
  631.              %"sMOO""                --  checks the next four characters
  632.                                          against the string "MOO". if they
  633.                                          are matched, it will contine. You
  634.                                          can only stop this by pressing the
  635.                                          control and C keys together, as
  636.                                          there is no timeout value.
  637.                                          
  638.              %"c"200"                --  Waits 20 seconds, then continues
  639.                                          
  640.                                          
  641. Here is a complete key definition that will keep dialing a number until
  642. it connects - and then log you into CIS. (handy, eh?)
  643.  
  644. ~*"o+++"~AT H0|%"rOK"ATDT 555-1212"%"rCONNECT 1200"200"%"sName: "200"CIS|
  645.  
  646.   (the following line is the rest of this same key)
  647.  
  648. %"sID: "200"72667,1321|%"sword: "200"YOUR.PASSWORD|%"k02Amiga Forum"600"
  649.  
  650. This definition will not only log you into CIS, but will start function
  651. key F2 executing if you are not in the amiga forum within 1 minute after
  652. CIS takes your password. Which might be to hang up, or look at email, or
  653. whatever. Depends on how you have CIS setup to handle your log on.
  654. Although not a complete scripting capability, these features of the
  655. macro key processor are enough to automate almost any concievable log on,
  656. log off, or any other reasonably set operation.
  657.  
  658. Two complex function key definitions are supplied in the default.config
  659. in the distribution ARC file. F11 (shifted F1) will call CIS, and if CIS
  660. sends you to the AmigaForum (which it should if you have no email waiting)
  661. it will proceed to open a file and read thread new through all the new
  662. stuff, then close the file it created and log off, then hang up. Not bad
  663. for a macro key, eh? F15 (shifted F5) will call CIS and get you in through
  664. all the ids, names, ppns and all of that. You can customize these very
  665. easily. First, change the phone number in the front of the key def (unless
  666. you live near me!) Then replace "YOUR-PPN" with your CIS ppn #. Then
  667. replace "YOUR.PASSWORD" with your CIS password. Then these should work.
  668. Note that the F11 key opens a capture file on df0:... either change it to
  669. where you want it, or put a disk in there with some room!
  670.  
  671. To clear a sen entry in the sen window, hit FlushOne and then press the
  672. arrow gadget to the immediate left of the entry you wish to delete. If
  673. you wish to cancel the operation, just close the window after you hit
  674. the Flush one gadget but before you hit the arrow gadget of any entry.
  675.  
  676. There are two menu functions that affect sens. One turns the sen operation
  677. on and off, the other is handy for when you have /sen't a line to
  678. someone and you meant it to go to the normal co level, in public.
  679. This function allows you to retransmit your last line. Simply change to
  680. the other mode (Amiga/d) then retransmit (Amiga/e).
  681.  
  682. When you are using /sens with another individual who has CoComm, and they are
  683. in AI Co mode, you can cause text to be underlined, italicised, or
  684. boldfaced. You can do this in any combination, and without worrying about
  685. what it looks like to others in Co. To underline, place the '_' character
  686. before and after the word or group of words you want underlined. To Boldface,
  687. use a '*" before and after the group or word. To Italicise, use the reverse
  688. apostrophe: '`'  Like this:  I did _NOT_ do it!  The "NOT" will be underlined.
  689.  
  690. In the locator window, you can put anything before the ppn as long as it does
  691. not contain a ":" character. This is used to tell cocomm where the ppn
  692. starts.
  693.  
  694. F11 through F20 are shifted function keys F1 through F10.
  695.  
  696. CoComm supports the "Quick" B protocol - files uploaded from your
  697. computer will not have to be "chopped", and files downloaded may
  698. not have to be either, depending on whether they were uploaded
  699. with B or QB protocol.
  700.  
  701. To use QB protocol, follow the prompts in the data library; no action
  702. is required by you inside CoComm, other than to answer the questions
  703. CIS asks you. All file transfer operations are fully automatic.
  704. Simply Choose the "B" protocol option at the prompt where that option is
  705. a choice; CoComm will inform CIS that the version of B proto to
  706. be used is the Quick version.
  707.  
  708. You can observe the progress of the transfer in the window CoComm opens
  709. for that purpose. For Uploads, since CoComm knows all about the file
  710. in question, a larger window with more data is displayed. For Downloads,
  711. only the number of blocks, retrys, and file name are shown. However,
  712. If you notice the size of the file in the DL description (it's there)
  713. you can type the number of bytes into the DL status window, and it will
  714. give you a running time estimate of dl'ing time.
  715.  
  716. If you wish to abort a quick B transfer, 'hit' the transfer status window's
  717. "close" gadget. After a moment, the transfer should complete.
  718.  
  719. If (Especially at 2400 baud) the Quick B transfer seems to "hang up", click
  720. in the log window and type a ^U -- several times, if needed. This should
  721. get CIS to continue the transfer. Apparently, there are problems with CIS's
  722. 2400 baud handling that can cause this. CoComm does absolutely nothing
  723. different at 2400 baud; nor is it missing characters or something like that.
  724. It is CIS's problem entirely.
  725.  
  726. Speech! works fine, play with, enjoy.
  727.  
  728. CoComm sleeps; this means that when it is not busy, other Amiga tasks can
  729. run full speed even while the CoComm window is open and active.
  730. Only when CoComm is processing data does it use system CPU time.
  731.  
  732. When the chat window is open, the log window is still active - this is
  733. important - if you are sen'ing somebody using the auto-sen capabilities
  734. of cocomm, then ALL input to the chat window goes to the person you are
  735. senning. If you type into the log window (just click in it), then
  736. unbuffered input begins immediately... you can carry on normal co level
  737. communications in the log window while you carry on a sen conversation
  738. in the chat window.
  739.  
  740. There are a number of control chars you can type into the chat window; First,
  741. ctrl H, or the backspace key. Ctrl X, which will cancel the line you
  742. have in the window, and ctrl W, which will cancel the last word if you
  743. are at the end of the line, and the current word if you are within the
  744. line. The chat window has some editing capability. pressing the left and
  745. right cursor keys will move the cursor through the text. The delete key
  746. will delete the character under the cursor. The backspace key will delete
  747. the character before the cursor. SHIFT/left arrow will put the cursor
  748. at the beginning of the line. SHIFT/right arrow will put the cursor at
  749. the end of the line. SHIFT/up arrow will put the cursor at the next
  750. word. SHIFT/down arrow will put the cursor at the previous word.
  751.  
  752. Review Buffer: This option is fairly straightforward. In order to use it,
  753. you first open the buffer. Then tell CoComm how many lines you wish it
  754. to reserve in the buffer. This is an important decision; If you choose
  755. 100 lines, and the conversation you wanted to review was 105 lines long,
  756. then you will lose the first five lines. try to be generous... You won't
  757. regret it. When the Review buffer is saved, it is saved in an editable
  758. format as a normal Amiga ascii text file. Likewise, when you load the
  759. Review buffer from a file, it expects a _text_ file... don't go trying to
  760. shovel in some binary file! The review buffer is a "concurrent" window;
  761. it co-exists peacefully with the main window(s). You can specify a
  762. default situation for the review buffer in the prefs window. You can
  763. choose it to be opened and allocated, started or stopped, and shown or
  764. now shown. If you save the .config file while the review window is
  765. actually allocated and the window open, then the window's size and
  766. position will be saved as well. So, (for instance, GreG!) if you want
  767. the review buffer active all the time, and of a particular size, then
  768. select start, open, and showing; as well as specifying the default
  769. number of lines to allocate (at 140 bytes of memory / line). CoComm
  770. will allocate the review buffer when it starts, and it'll be there
  771. all the time unless you turn it off. You can use the cursor up/down keys,
  772. unshifted, any time the review buffer window is open to scroll the
  773. text in the review window.
  774.  
  775. NOTE: When you use the capture facility, PLEASE do not put files in the
  776. ram: device! For that matter, don't run CoComm there, either! Why? (I
  777. hear you cry) Because ram:, also known as Blowup.Device, is unreliable,
  778. tends to flake your system, and definitely can crash CoComm. RAM: should
  779. never be used for anything, if you can avoid it! Since you're planning on
  780. using CoComm, you must be a CIS subscriber - so go to the data libraries
  781. and download ASDG's VD0: device. It is _far_ better than the CBM
  782. supplied ram: device, won't blow up, and furthermore can retain your
  783. data through a warm boot if you have expansion memory. Get it!
  784.  
  785. Doubt me on ram:'s instability and general reliability? go to any CLI
  786. and type the following;
  787.  
  788. dir "Ram Disk:"
  789.  
  790. But don't do it with anything important in the machine - because you're
  791. going to visit the Guru as soon as you hit return. There are LOTS of
  792. other known problems with the ram: device. Don't Use It!
  793.  
  794. The terminal type used here is ANSI - both of the windows used for
  795. communications in cocomm are Amiga console devices;
  796.  
  797. As far as performance goes, CoComm is fairly ambitious in the way it
  798. is structured. The Amiga console devices, while very nice, are not what
  799. you would call high-performance. Running two of them, as well as the
  800. serial channel and the usual Intuition stuff is a fair demand on the
  801. computer. You may experience some performance degradation when running
  802. other programs at the same time, though in general I have seen few problems.
  803.  
  804. A technical note - CoComm inherits the priority of the CLI it was
  805. started from, so if you have a CLI with a priority of 1 or more,
  806. then CoComm will perform better when run with other programs.
  807. You can also, if you started CoComm from the CLI, use the SetPri
  808. program (also by SoftCircuits - FreeWare on CIS in DL9) to change
  809. CoComm's priority to anything you like. Feel free to experiment
  810. with it.
  811.  
  812. I'm Ben Blish - I spend a LOT of time on the Amiga Forum. I like CIS,
  813. I like the people I meet there, and I'll probably see you there.
  814. If you have suggestions, please leave them for me on the forum -
  815. NOT in EMAIL. I HATE EMAIL! When you see a msg from me, simply
  816. reply to it using the UA option, which will let you rename your msg.
  817. You can also give me suggestions in co... assuming I'm there, of
  818. course.
  819.  
  820. If you meet any pirates, kick them in the... I mean, explain to them
  821. that they're misdirected.
  822.  
  823. Remember - this is shareware - you want more? send 15.00 to us at:
  824.  
  825.      SoftCircuits, Inc.
  826.      701 Nw 13th Street, Suite C4
  827.      Boca Raton, Fl
  828.      33432
  829.  
  830. If you can't afford it, that's ok. Use it anyway, and enjoy!
  831.  
  832.  
  833. Special thanks to Keith, who helped debug the original standard
  834. B proto code; It would have taken much longer to get the first version
  835. of CoComm up to the point where it could have transferred files
  836. without his knowledge and experience with CIS.
  837.  
  838. Quick B protocol was implemented using methods provided by Compuserve's
  839. Russ Ranshaw, converted to generic 'c' code by Paul M. Resch, and
  840. modified to work in CoComm by myself.
  841.  
  842. Thanks to Anne, Larry, Doug, GreG, Jim, Steve,
  843. and all the co'ers who have been involved in supplying
  844. rude remarks... I mean, constructive feedback on
  845. the life and times of CoComm.
  846.  
  847. Actually, Anne never says anything rude. But Doug, now...
  848. of course, HE tries to run two term programs at one time,
  849. so who's gonna listen to him? Not only that - he has been known
  850. to use an 8k stack!
  851.  
  852. Ben Blish, For SoftCircuits, Inc.  Dec 28th, 1987
  853.  
  854. CoComm/CBB
  855.  
  856. * Update history from 3.11:
  857.  
  858. 3.11 : polished review buffer, flicker gone;
  859.        review buffer arrows auto-repeat;
  860.        chat buffer editing added;
  861.        review buffer now concurrent task;
  862.        Review line length changed from 255 to 140
  863.        
  864. 3.12 : review window gadgets now auto-reselect the chat or log
  865.        windows, whoever was active when review buffer gadgets
  866.        were hit.
  867.        
  868.      + CoComm can now run even if Narrator/translator
  869.        stuff isn't available to it.
  870.        
  871. 3.13 : bug fix - review buffer trashing system memory lists
  872.  
  873. 3.14 : 16 line history for chat window;
  874.  
  875.      + ^R char swap in chat editing added.
  876.  
  877. 3.15 : numeric register handling added: 
  878.          inc, 
  879.          dec,
  880.          clr,
  881.          load,
  882.          print,
  883.          jump,
  884.          call;
  885.          
  886.      + Macro key error handler now includes key ID that caused the
  887.        exception;
  888.  
  889. **** : no version 3.15->3.99
  890.  
  891. 4.00 : Compiled with Lattice C ( lost 15k in the process! )
  892.  
  893. 4.01 : Parity problems fixed - parity settings are now correct,
  894.        my fault, sorry! One consequence of this is that you
  895.        MUST sign on to CIS with the following settings if you
  896.        are going to download or upload:
  897.                    8 Bits
  898.                    1 Stop bit
  899.                    No parity
  900.        7e2 works, but CIS doesn't like it for file transfers.
  901.  
  902.      + Small bug, filerequester sorting OLD lists of data before
  903.        it read in the new lists, fixed. Now sorts only when it
  904.        has new info. 
  905.        
  906.      + Both the /sen manager and the Locator will now function
  907.        outside of the Co area; however, the locator provides
  908.        different info outside of co - beacause of the way the
  909.        forum software works, you only get some information
  910.        about the person - last time on - not where they are.
  911.        Sorry, but that's the forum software for you.
  912.        
  913.      + 4.00 had QB download problem, engendered by the use of
  914.        the new Lattice 4.0 compiler - fixed now.
  915.        
  916.      + Download abort now works;
  917.        
  918.      + Aborting uploads will no longer leave the file open;
  919.      
  920.      + You can now specify a CUSTOM screen for CoComm to open
  921.        into. You cannot change from a custom screen back to the
  922.        workbench, or vice-versa, while running. Choose the
  923.        desired option in the preferences window, and save the
  924.        default.config file... from then on, CoComm will use
  925.        that screen option.
  926.        
  927.      + Additional Screen option: "Lace", short for interlace;
  928.        you can specify that CoComm open the CUSTOM screen as
  929.        an interlace screen, for 400 or more lines of video.
  930.        CoComm should use the same standards as your workbench
  931.        screen - that means if you have extra rows, or columns,
  932.        via morerows or PAL, the custom screens CoComm creates
  933.        should also reflect that. The interlace switch also
  934.        only takes effect when CoComm first starts.
  935.  
  936. 4.02 : Filerequester modified for much faster sorting of file
  937.        lists, dir lists, and root lists.
  938.        
  939.      + Filerequester "OK" message now includes file/dir/root
  940.        counts for your convenience.
  941.        
  942.      + Review buffer now clears and displays immediately after
  943.        a LOAD review operation (Dunno how I missed THAT one!)
  944.      
  945.      + When a load review buffer operation would overfill the
  946.        review buffer, the notice requester indicates how many
  947.        lines bigger than the buffer the file was. allowing you
  948.        to intellegently re-allocate the buffer, if you desire.
  949.        
  950.      + Review buffer load would always leave one line from the
  951.        previous contents in it - no longer.
  952.      
  953.      + In v4.01, if you opened an interlace screen, then modified
  954.        the Prefs settings for non-interlace, saved them in the
  955.        default.config file with your windows in positions that
  956.        are not acceptable for a non-interlace screen, CoComm
  957.        would be unable to restart using that default.config
  958.        file. Now fixed - you can even use those .configs that
  959.        didn't work... they'll be ok now. Sorry. <grin>
  960.  
  961. 4.03 : This revision adds the ability to use color highlighting on
  962.        individual words and phrases. Using an exclamation point
  963.        followed immediately by a numeral (1,2, or 3) will cause
  964.        the color of the text in Ai Co mode to be changed. The "!1"
  965.        color is the default; You use a !1 to return a phrase to
  966.        the original color of the Co Text highlight. Use !2 and
  967.        !3 to make the text appear in the other colors. This feature
  968.        can be disabled in preferences, if you don't want others
  969.        able to control your color set. These text options cancel
  970.        themselves at the end of each line, so there is no problem
  971.        with sending up a phrase like this:  "!2Hi, Mom."
  972.  
  973. 4.04 : Fix for "Transmit File" operation. Incoming text characters
  974.        during a transmit operation were not filtered, so it was
  975.        possible for your screen to go into the ALT character set;
  976.        looked like crud, and impossible to read, if it happened.
  977.        Fixed now.
  978.      
  979.      + Extensive rework on the other transmit options; the &"" option
  980.        in the macro keys, and the review buffer transmit as well.
  981.        
  982.      + Added preferences gadget for disabling the color highlighting
  983.        feature - supposed to be in 4.03, but I forgot to do it.
  984.      
  985.      + Not a feature of 4.04, exactly, but good to know about:
  986.        An ARC file has been created that contains a nifty automatic
  987.        HELP generator for you to use with other people in CO;
  988.        the file creates a string of requesters that send your
  989.        choice of HELP files to the user in Co; Really a super use
  990.        of the macro keys. Included is a complete explanation
  991.        of how to use it.
  992.  
  993. 4.05 : Xmodem standard (as opposed to Xmodem CRC) file transfer
  994.        protocol has been added; this allows CoComm to be used for
  995.        Amiga->Amiga transfers, and of course almost any bulletin
  996.        board will support xmodem; You can now use all that macro
  997.        power on other systems! (limited distribution Version)
  998.        
  999. 4.06 : *"sSPEAK TEXT" string output variation had a bug where
  1000.        calling it multiple time quickly in succession would cause
  1001.        a GURU, due to faulty code that was SUPPOSED to be checking
  1002.        to see if the last speech command had completed but wasn't.
  1003.        all fixed now.
  1004.        
  1005.      + Xmodem CRC added... an additional protocol for use with
  1006.        more sophisticated BBS's and networks.
  1007.        
  1008.      + Additional support for 7-bit use; some internal routines
  1009.        were still seeing the 8th bit, missed it because I never
  1010.        run 7 bits, myself. Sorry.
  1011.        
  1012.      + Added Echo/No echo for CoComm -> CoComm/other term use.
  1013.      
  1014.      + Added Half/Full duplex
  1015.      
  1016.      + Added Incoming C/r = C/r OR C/r-LF
  1017.      
  1018.      + Added Outgoing C/r = C/r OR C/r-LF
  1019.      
  1020. 4.07 : Both Xmodem AND Xmodem-CRC had nasty bug on receiving files
  1021.        due to XON/XOFF problems throughout CoComm, my mistake. This
  1022.        has been corrected... The problem manifested itself as the
  1023.        program's tendancy to swallow the first $11 character that
  1024.        came along - if you dl'd a text file, you couldn't get past
  1025.        block 16, because the protocol sends a $11 at the beginning
  1026.        of block 17.
  1027.        
  1028.      + Related to the above problem, you can now type ^S and ^Q
  1029.        (XON/XOFF) into the log window and they will be sent as
  1030.        you would expect - CIS (and other systems) will respond
  1031.        appropriately.
  1032.        
  1033.      + Doug: The Prefs window has a new item in it; It's a text gadget
  1034.        called "Pass:" You enter into this gadget all the control
  1035.        characters that you want to pass "through" the chat window; For
  1036.        instance, on CIS, the following control characters are used often:
  1037.        
  1038.           ^C - Aborts the current operation completely
  1039.           ^P - Aborts the current operation locally
  1040.           ^S - Stops output to your screen until ^Q
  1041.           ^Q - Resumes output after ^S
  1042.        
  1043.        If you type SQCP into the "Pass:" gadget, then any time you
  1044.        type ^S, ^Q, ^C, or ^P into the chat window, the control
  1045.        character will be immediatly sent on to the host. Note that
  1046.        you can change these characters to anything - and that this
  1047.        function take precedence over standard chat functions; For instance,
  1048.        ^R normally swaps the characters under the cursor in the chat
  1049.        window; if you enter an R into the Pass: gadget, then typing
  1050.        a ^R will only send the ^R on to the host system - NOT swap
  1051.        the characters anymore. Use judiciously. any or all of the 32
  1052.        possible control characters may be placed in the Pass: gadget;
  1053.        it scrolls to accomidate more than fit in the little window.
  1054.        Order does not matter, nor does lower/upper case.
  1055.        
  1056.            00-@ 01-A 02-B 03-C 04-D 05-E 06-F 07-G 08-H 09-I 0A-J
  1057.            0B-K 0C-L 0D-M OE-N 0F-O 10-P 11-Q 12-R 13-S 14-T 15-U
  1058.            16-V 17-W 18-X 19-Y 1A-Z 1B-[ 1C-\ 1D-] 1E-^ 1F-_
  1059.      
  1060. 4.08 : For v4.08 there is an entirely new function, one that allows you
  1061.        to open a window with from 1 to 20 gadgets in it; You control
  1062.        the text that appears in these gadgets, and how many there are.
  1063.        Each of these gadgets can start a function key; The whole
  1064.        thing is controlled by a "define" file, that contains plain
  1065.        ASCII text you use an editor to build. Details are available
  1066.        in the macto key function explanations.
  1067.        
  1068.      + The cursor in the LOG window is now automatically turned off
  1069.        when you are using the chat window; It only appears when you
  1070.        are using the log window directly.
  1071.     
  1072. 4.09 : the gadget window added in 4.08 would not open into a custom
  1073.        screen - fixed now.
  1074.        
  1075. 4.10 : Review Buffer window will now shrink somewhat further - in
  1076.        response to some careful critisism.
  1077.        
  1078.      + The gadget window now has the ability to have user-specifed
  1079.        colors for the text in the gadgets - this allows you to
  1080.        highlight the items you consider of overriding importance.
  1081.        You modify the number of the fkey in the beginning of the
  1082.        line for colors: Use 01-20 for color 1, 21-40 for color 2,
  1083.        and 41-60 for color 3.
  1084.        
  1085.      + CoComm can now optionally execute an fkey when it is started;
  1086.        to choose an autostart fkey, enter a number from 1-20 in the
  1087.        "AutoStart" gadget in the prefs window and save as the
  1088.        Default.config file.
  1089.        
  1090.      + CoComm will now remember where you last "parked" the gadget window,
  1091.        so if you close it, it will re-open where it was when you closed it,
  1092.        instead of always starting in the same position.
  1093.      
  1094.      + Somewhere b4 this rev a bug crept in that would not allow you
  1095.        to change the serial parameters except at startup; That's
  1096.        fixed, you can now select the baud rate, parity, and stop bits
  1097.        on the fly at any time w/o quitting CoComm.
  1098.        
  1099. 4.11 : To the macro language, added the ']' statement - this allows you
  1100.        to set the communications parameters from a macro key operation.
  1101.        This addition makes the phonebook concept now 100% viable using
  1102.        the gadget windows and macro keys. Examine the phone.config
  1103.        F11 key for an example of it's use - there, it sets you to
  1104.        8N1, Full duplex, and does NOT change your baud rate... Thus
  1105.        ensuring that your protocol transfers with CIS operate correctly.
  1106.        
  1107.      + added the simple quoted string serial output; To send any text
  1108.        except a double quotation mark, simply enclose it in the double
  1109.        quotes, like this:   "send this text"
  1110.        
  1111.      + bug fix: macro keys that had a comment at the end would not
  1112.        'return' when 'called' from another key - fixed now.
  1113.      
  1114.      + default.config demos restructured to use phonebook gadget window,
  1115.        meta funtion that calls CIS (in phonebook config, now) also
  1116.        restructured for easy modification by the new user.
  1117.  
  1118. 4.12 : QB proto auto-sense disable added for use of the CoComm program
  1119.        on systems that do NOT handle the QB protocol - IE, anywhere
  1120.        but CIS. <grin>
  1121.        
  1122. 4.13 : Added a menu for use in handling the '.def' files; It kind of
  1123.        offended me that you had to use a text editor to prepare them;
  1124.        It 'feels better' to be able to handle everything right from
  1125.        CoComm. Available menu options are save, load, and edit. The
  1126.        Load function automatically opens the editor.
  1127.       
  1128. 4.14 : Added a DOS Execute function to the macro language; the '?'
  1129.        character is used for it. The return code from the command
  1130.        is placed in numeric register 'Z'.
  1131.      
  1132.      + Added some other conditions to the conditional jump and call
  1133.        facilities. Previously, you could jump or call (using numeric
  1134.        registers) on zero or non-zero conditions; You can now also
  1135.        jump or call on greater than zero and less than zero conditions.
  1136.        This was added because it was observed that some commands returned
  1137.        a negative return code, and you may need to be able to test
  1138.        for that in order to handle it properly.
  1139.        
  1140.